// 引入 fs 模块用于文件和文件夹操作
const fs = require('fs');
// 引入 path 模块用于处理文件路径
const path = require('path');

// 获取命令行参数（第一个参数是 node 路径，第二个是脚本路径，所以从第三个开始是要删除的目标）
const target = process.argv[2];

// 检查是否传入了命令行参数
if (!target) {
  console.error('请传入要删除的文件或文件夹名称！');
  process.exit(1);
}

// 拼接当前目录与目标名称，得到完整路径
const targetPath = path.join(__dirname, target);

// 检查目标是文件还是文件夹
fs.stat(targetPath, (err, stats) => {
  if (err) {
    console.error(`目标 ${target} 不存在或无法访问：`, err);
    process.exit(1);
  }

  if (stats.isFile()) {
    // 是文件，直接删除
    fs.unlink(targetPath, (unlinkErr) => {
      if (unlinkErr) {
        console.error(`删除文件 ${target} 失败：`, unlinkErr);
        process.exit(1);
      }
      console.log(`文件 ${target} 删除成功！`);
    });
  } else if (stats.isDirectory()) {
    // 是文件夹，递归删除（Node.js 14.14.0+ 可直接用 fs.rm 递归删除）
    fs.rm(targetPath, { recursive: true, force: true }, (rmErr) => {
      if (rmErr) {
        console.error(`删除文件夹 ${target} 失败：`, rmErr);
        process.exit(1);
      }
      console.log(`文件夹 ${target} 及其内容删除成功！`);
    });
  } else {
    console.error(`目标 ${target} 既不是文件也不是文件夹，无法删除。`);
    process.exit(1);
  }
});